// import {baseURL} from './base.js' //导入接口的前缀地址
import store from '@/store/index.js'
//后端地址 
//服务器
const baseURL = 'http://120.79.83.142:8083/';
//本地
// const baseURL = 'http://localhost:8083/';
 
export const myRequest = (options) => {
	// console.log(baseURL)
	useNetWork();
	return new Promise((resolve, reject) => {
		uni.request({
			url: baseURL + options.url, //接口地址：前缀+方法中传入的地址
			method: options.method || 'GET', //请求方法：传入的方法或者默认是“GET”
			data: options.data || {}, //传递参数：传入的参数或者默认传递空集合
			header: {
			    // 'Authorization ': window.localStorage.getItem('authentication') //自定义请求头信息
				authentication: store.getters.token
			},
			success: (res) => {
				//返回的数据（不固定，看后端接口，这里是做了一个判断，如果不为true，用uni.showToast方法提示获取数据失败)
				// console.log('res:',res)
				if(res.statusCode == 401){
					const pages = getCurrentPages();
					const currentPage = pages[pages.length - 1];
					if(currentPage.route != 'pages/home/home')
						uni.navigateTo({
							url:'/pages/home/home'
						})
					return uni.showToast({
						title: 'token已过期，请重新登录',
						icon: 'none',
						success: function (res) {

								console.log('request-success:');
								store.dispatch('logout')


							},
						fail: function (res) {
								console.log('request-fail:');
								console.log(res)
							}
					})
				}
				if(res.data.code != 1){
					if(store.getters.token == ''){
						return 
					}

					if(res.statusCode == 200){
						// resolve(res.data)
						console.log(res.data.msg)
						return uni.showToast({
							title: res.data.msg,
							icon: 'error'
						})
					}
					const errData = res.data
					return uni.showToast({
						title: res.statusCode+'获取数据失败',
						icon: 'error',
						success: function (res) {
								console.log('request-success:');
								console.log(errData)
							},
						fail: function (res) {
								console.log('request-fail:');
								console.log(res)
							}
					})
				}
				// 如果不满足上述判断就输出数据
				resolve(res.data)
			},
			// 这里的接口请求，如果出现问题就输出接口请求失败
			fail: (err) => {
				console.log('接口请求失败',err)
				reject(err.errMsg)
			}
		})
	})
}

/**
 * 判断是否有网络
 */
export default function useNetWork() {
	getNetStatus().then(res => {
	  console.log('网络正常', res);
	}).catch(res => {
		setTimeout(() => {
			uni.showToast({
				title: '请检查您的网络连接',
				icon: 'none',
				duration: 3000,
			})
			uni.navigateTo({
				url:'/pages/noNetwork/noNetwork'
			})
		}, 100)
		wx.onNetworkStatusChange(function(res) {
			if (res.isConnected) {
				uni.showToast({
					title: '网络已恢复',
					icon: 'none',
					duration: 1000,
				})
				uni.navigateBack({
					delta: 1
				})
			} else {
			 useNetWork();
			}
		})
	})
}

function getNetStatus(){
	return new Promise((resolve, reject) => {
		wx.getNetworkType({
			success (res) {
				const networkType = res.networkType;
				if (res.networkType === 'none') {
					reject();
				} else {
					resolve();
				}
			}
		})
	})
}